ORACLE

您所在的位置:网站首页 mysql 实现序列和Oracle ORACLE

ORACLE

2023-06-20 03:29| 来源: 网络整理| 查看: 265

开窗函数(又名:分析函数,窗口函数,OLAP函数):

   将数据按照一定的规则分组,统一分析各组的某项情况,每行数据返回一行结果。不论是spark的还是clickhouse的在日常的查询中是一个很常用的功能,特别是他想要解决的问题和group by的很类似,这两种容易引起混淆,本文就简单的描述下开窗函数的简单用法。

数据实例:

SQL操作实例:

1.查询每个班级中学生中年龄最大学生的基本信息。

-- 常用写法 select * from T_Student wehre Age in (select max(Age) from T_Student Group by Class); -- 改进写法 select * from T_Student wehre Age in (select max(Age) OVER(PARTITION BY Class) from T_Student );

 2.查询每个班级中学生的最大年龄差。

--常用写法 select Class ,max(Age)-min(Age) 最大年龄差 from T_Student group by Class --改进写法 select Class,max(Age) OVER(PARTITION BY Class)-min(Age) OVER(PARTITION BY Class) 最大年龄差 from T_Student

3.查询时要求带出学生所在班级的学生年龄总和。

--常用方法 ---------不想写------- --改进写法 SELECT Name ,Age ,Class,SUM(Age) OVER(PARTITION BY Class) AS WEEKAMT FROM T_Student

4.查询时按照学生姓名排序并带上序号。

--常用写法 ------小编不会-------- --改进写法 SELECT Name,ROW_NUMBER()OVER( ORDER BY Name) 序号 FROM T_Student

5.查询时按照班级分组、学生姓名排序并带上序号。

--常用方法 ----------望指点--------- --改进方法 SELECT B.Class,B.Name,ROW_NUMBER()OVER(PARTITION BY Class ORDER BY Name DESC) 序号 FROM T_Student B;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3